
<!doctype html>
<html>
<head>
	<meta http-equiv="Content-type" content="text/html; charset=utf-8"/>
	<title>设计ajax库需要考虑的问题</title>
</head>
<body>


<script type="text/javascript">

//伪代码，仅供参考

////////////////// //链式反馈done与fail // ////////////////// 
$.ajax({
	url: "script.php",
	type: "POST",
	data: {
		id: menuId
	},
	dataType: "html"
}).done(function(msg) {
	$("#log").html(msg);
}).fail(function(jqXHR, textStatus) {
	alert("Request failed: " +
		textStatus);
});


//////////////
//分离异步与同步处理 //
//////////////
var aajax = $.ajax({
    url: "script.php",
    type: "POST",
    data: {
        id: menuId
    },
    dataType: "html"
}).fail(function(jqXHR, textStatus) {
    alert("Request failed: " + textStatus);
});

//同步还在执行代码，这个函数有可能在AJAX结束前调用
dosomething()

//异步还在等在成功响应
aajax.done(function(msg) {
    $("#log").html(msg);
})



/////////////////
//同时执行多个ajax请求 //
/////////////////
function ajax1() {
	return $.get('1.htm');
}

function ajax2() {
	return $.get('2.htm');
}


$.when(ajax1(), ajax2())
	.then(function() {
		//成功
	})
	.fail(function() {
		//失败
	});

</script>
</body>
</html>